﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

namespace T.FAS.Runtime.Metadata.Entity
{
    /// <summary>
    /// Action方法
    /// </summary>
    [Serializable]
    public class ActionMetaDataMethod 
    {
        public string ID { get; set; }
        public string ActionMetaDataID { get; set; }
        public string Code { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public string ActionAssembly { get; set; }
        public string ActionClass { get; set; }
        public string MethodContent { get; set; }
        /// <summary>
        /// 客户端Action脚本转换后，真正执行用的脚本内容（ES5）
        /// </summary>
        public string MethodContentForES5 { get; set; }
        /// <summary>
        /// Action执行前扩展方法
        /// </summary>
        public string BeforeMethodContent { get; set; }        
        /// <summary>
        /// Action执行后扩展方法
        /// </summary>
        public string AfterMethodContent { get; set; }
        /// <summary>
        /// 是否启用事务控制
        /// </summary>
        public bool IsEnableTransaction { get; set; }
        /// <summary>
        /// 方法调用是否受限，作用于转调内部Sg的Action，默认为false
        /// 当IsLimit为true时，转调内部SG时，限定在当前开发应用的部署范围内
        /// 当IsLimit为false时，转调内部SG时，不做限定，基于ng路由规则跳转
        /// <example>对于低代码的日志服务，需要设置为true</example>
        /// </summary>
        public bool IsInvokeLimit { get; set; }
        /// <summary>
        /// 对于SQL Action提供高级模式，支持动态条件
        /// </summary>
        public bool IsAdvanced { get; set; }
        public string Ext1 { get; set; }
        public string Ext2 { get; set; }
        public string Ext3 { get; set; }

        public DateTime CreateTime { get; set; }
        public string Creator { get; set; }
        public DateTime LastModifyTime { get; set; }
        public string LastModifier { get; set; }
    }
}
